經過前面幾天的網路知識介紹,今天終於要正式開始介紹 Kubernetes 的 CNI 了。
那麼第一個介紹的就是 Kubernetes 中入門級的 CNI — Flannel。
作為入門級的 CNI ,Flannel 基本上只提供最基本的網路而已, Kubernetes 中比較進階的 NetworkPolicy 等功能都不支援,不過基本上在小環境測試及使用還是沒問題的。
廢話不多說,首先先上架構圖:
這張架構圖就是基本 Flannel 的架構,可以看到有個 cni0
跟 flannel.1
的虛擬介面,而所有容器的 veth-pair 一端接在容器,另一端接在 cni0
,這樣同一節點中容器之間的通訊就只需要透過 cni0
即可,而跨節點容器之間的通訊就需要先經過 cni0
、 flannel.1
再從實體介面出去到另外一台節點,然後另一台節點的實體介面收到之後同樣會經過 flannel.1
、 cni0
再到容器中。這樣即可完成 Kubernetes 容器之間的通訊。(阿VXLAN我有點忘記在那裡會包了,我改天試完在補)
另外還有一個地方各位不知道有沒有發現,那就是各個節點上都會有一個網段,並且跟節點本身的 IP 不太相同,這個就是前面所提到的 overlay 網路。
那各位今天就到這邊,各位明天見了。